package com._1_8;

import org.junit.Test;

import java.util.Comparator;

/**
 * * 是一个匿名函数，语法 紧凑、简洁、灵活、但是不太容易阅读
 * * 引入 "->"箭头操作符
 * * 箭头左侧：参数
 * * 箭头右侧：执行的功能，内部变量引用的局部变量，隐式添加了final
 * * 主要配合 函数式接口 与 方法引用 ，实现高级语法糖
 */
public class _01_Lambda {
    @Test
    public void test() {

        //原始匿名写法
        Comparator<Integer> c1111 = new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return Integer.compare(o1, o2);
            }
        };

        //无法简化
        Comparator<Integer> c2222 = (o1, o2) -> {
            System.out.println(123);
            return Integer.compare(o1, o2);
        };

        //可以简化
        Comparator<Integer> c3333 = (Integer o1, Integer o2) -> {
            return Integer.compare(o1, o2);
        };

        //
        Comparator<Integer> c4444 = (o1, o2) -> {
            return Integer.compare(o1, o2);
        };

        //
        Comparator<Integer> c5555 = (o1, o2) -> Integer.compare(o1, o2);

        //
        Comparator<Integer> c6 = Integer::compare;


    }

}

